library(ggplot2)
library(ggsci)
library(hdf5r)
library(patchwork)
library(RColorBrewer)
library(Seurat)
library(tidyverse)
setwd("/Users/christinacomo/Desktop/Spatial")
getwd()
[1] "/Users/christinacomo/Desktop/Spatial"
data_dir <- '/Users/christinacomo/Desktop/Spatial/data/B'
list.files(data_dir) # Should show filtered_feature_bc_matrix.h5
[1] "cellshighlighted_b.png"        "Clusterandspatial_B.png"       "filtered_feature_bc_matrix.h5"
[4] "nCount_B.png"                  "spatial"                       "SpatialHighlited_B.png"       
[7] "web_summary.html"             
# grab the spot barcodes to use for subsetting
spots.use <- regions_of_interest$barcodes
regions_of_interest <- regions_of_interest %>% column_to_rownames(var = "barcodes")
sample <- "control2"
SampleB[["orig.ident"]] <- sample
SampleB <- SetIdent(SampleB, value = so@meta.data$orig.ident)
SampleB <- PercentageFeatureSet(SampleB, "^mt-", col.name = "percent_mito")
SampleB <- PercentageFeatureSet(SampleB, "^Hb.*-", col.name = "percent_hb")
VlnPlot(SampleB, 
        features = c("nCount_Spatial", 
                     "nFeature_Spatial", 
                     "percent_mito", 
                     "percent_hb"),
        pt.size = 0.1, 
        ncol = 2) + NoLegend()

SpatialFeaturePlot(SampleB, 
                   features = c("nCount_Spatial", 
                                "nFeature_Spatial", 
                                "percent_mito", 
                                "percent_hb"))

SampleB <- SCTransform(SampleB, assay = "Spatial")
Calculating cell attributes from input UMI matrix: log_umi
Variance stabilizing transformation of count matrix of size 16658 by 1620
Model formula is y ~ log_umi
Get Negative Binomial regression parameters per gene
Using 2000 genes, 1620 cells

  |                                                                                                                 
  |                                                                                                           |   0%
  |                                                                                                                 
  |===========================                                                                                |  25%
  |                                                                                                                 
  |======================================================                                                     |  50%
  |                                                                                                                 
  |================================================================================                           |  75%
  |                                                                                                                 
  |===========================================================================================================| 100%
There are 3 estimated thetas smaller than 1e-07 - will be set to 1e-07
Found 108 outliers - those will be ignored in fitting/regularization step

Second step: Get residuals using fitted parameters for 16658 genes

  |                                                                                                                 
  |                                                                                                           |   0%
  |                                                                                                                 
  |===                                                                                                        |   3%
  |                                                                                                                 
  |======                                                                                                     |   6%
  |                                                                                                                 
  |=========                                                                                                  |   9%
  |                                                                                                                 
  |=============                                                                                              |  12%
  |                                                                                                                 
  |================                                                                                           |  15%
  |                                                                                                                 
  |===================                                                                                        |  18%
  |                                                                                                                 
  |======================                                                                                     |  21%
  |                                                                                                                 
  |=========================                                                                                  |  24%
  |                                                                                                                 
  |============================                                                                               |  26%
  |                                                                                                                 
  |===============================                                                                            |  29%
  |                                                                                                                 
  |===================================                                                                        |  32%
  |                                                                                                                 
  |======================================                                                                     |  35%
  |                                                                                                                 
  |=========================================                                                                  |  38%
  |                                                                                                                 
  |============================================                                                               |  41%
  |                                                                                                                 
  |===============================================                                                            |  44%
  |                                                                                                                 
  |==================================================                                                         |  47%
  |                                                                                                                 
  |======================================================                                                     |  50%
  |                                                                                                                 
  |=========================================================                                                  |  53%
  |                                                                                                                 
  |============================================================                                               |  56%
  |                                                                                                                 
  |===============================================================                                            |  59%
  |                                                                                                                 
  |==================================================================                                         |  62%
  |                                                                                                                 
  |=====================================================================                                      |  65%
  |                                                                                                                 
  |========================================================================                                   |  68%
  |                                                                                                                 
  |============================================================================                               |  71%
  |                                                                                                                 
  |===============================================================================                            |  74%
  |                                                                                                                 
  |==================================================================================                         |  76%
  |                                                                                                                 
  |=====================================================================================                      |  79%
  |                                                                                                                 
  |========================================================================================                   |  82%
  |                                                                                                                 
  |===========================================================================================                |  85%
  |                                                                                                                 
  |==============================================================================================             |  88%
  |                                                                                                                 
  |==================================================================================================         |  91%
  |                                                                                                                 
  |=====================================================================================================      |  94%
  |                                                                                                                 
  |========================================================================================================   |  97%
  |                                                                                                                 
  |===========================================================================================================| 100%
Computing corrected count matrix for 16658 genes

  |                                                                                                                 
  |                                                                                                           |   0%
  |                                                                                                                 
  |===                                                                                                        |   3%
  |                                                                                                                 
  |======                                                                                                     |   6%
  |                                                                                                                 
  |=========                                                                                                  |   9%
  |                                                                                                                 
  |=============                                                                                              |  12%
  |                                                                                                                 
  |================                                                                                           |  15%
  |                                                                                                                 
  |===================                                                                                        |  18%
  |                                                                                                                 
  |======================                                                                                     |  21%
  |                                                                                                                 
  |=========================                                                                                  |  24%
  |                                                                                                                 
  |============================                                                                               |  26%
  |                                                                                                                 
  |===============================                                                                            |  29%
  |                                                                                                                 
  |===================================                                                                        |  32%
  |                                                                                                                 
  |======================================                                                                     |  35%
  |                                                                                                                 
  |=========================================                                                                  |  38%
  |                                                                                                                 
  |============================================                                                               |  41%
  |                                                                                                                 
  |===============================================                                                            |  44%
  |                                                                                                                 
  |==================================================                                                         |  47%
  |                                                                                                                 
  |======================================================                                                     |  50%
  |                                                                                                                 
  |=========================================================                                                  |  53%
  |                                                                                                                 
  |============================================================                                               |  56%
  |                                                                                                                 
  |===============================================================                                            |  59%
  |                                                                                                                 
  |==================================================================                                         |  62%
  |                                                                                                                 
  |=====================================================================                                      |  65%
  |                                                                                                                 
  |========================================================================                                   |  68%
  |                                                                                                                 
  |============================================================================                               |  71%
  |                                                                                                                 
  |===============================================================================                            |  74%
  |                                                                                                                 
  |==================================================================================                         |  76%
  |                                                                                                                 
  |=====================================================================================                      |  79%
  |                                                                                                                 
  |========================================================================================                   |  82%
  |                                                                                                                 
  |===========================================================================================                |  85%
  |                                                                                                                 
  |==============================================================================================             |  88%
  |                                                                                                                 
  |==================================================================================================         |  91%
  |                                                                                                                 
  |=====================================================================================================      |  94%
  |                                                                                                                 
  |========================================================================================================   |  97%
  |                                                                                                                 
  |===========================================================================================================| 100%
Calculating gene attributes
Wall clock passed: Time difference of 18.19644 secs
Determine variable features
Place corrected count matrix in counts slot
Centering data matrix

  |                                                                                                                 
  |                                                                                                           |   0%
  |                                                                                                                 
  |===========================                                                                                |  25%
  |                                                                                                                 
  |======================================================                                                     |  50%
  |                                                                                                                 
  |================================================================================                           |  75%
  |                                                                                                                 
  |===========================================================================================================| 100%
Set default assay to SCT
SampleB <- RunPCA(SampleB, assay = "SCT", verbose = FALSE)
SampleB <- FindNeighbors(SampleB, reduction = "pca", dims = 1:30, verbose = FALSE)
SampleB <- FindClusters(SampleB, verbose = FALSE)
SampleB <- RunUMAP(SampleB, reduction = "pca", dims = 1:30)
14:09:17 UMAP embedding parameters a = 0.9922 b = 1.112
14:09:17 Read 1620 rows and found 30 numeric columns
14:09:17 Using Annoy for neighbor search, n_neighbors = 30
14:09:17 Building Annoy index with metric = cosine, n_trees = 50
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
14:09:17 Writing NN index file to temp file /var/folders/2b/gcm1xy2n6s50jqf9f3ln87140000gn/T//RtmpWq9Udx/file58a42d3bd9cb
14:09:17 Searching Annoy index using 1 thread, search_k = 3000
14:09:17 Annoy recall = 100%
14:09:18 Commencing smooth kNN distance calibration using 1 thread
14:09:19 Initializing from normalized Laplacian + noise
14:09:19 Commencing optimization for 500 epochs, with 57888 positive edges
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
14:09:21 Optimization finished
p1 <- DimPlot(SampleB, reduction = "umap", label = TRUE)
p2 <- SpatialDimPlot(SampleB, label = TRUE, label.size = 3)
Scale for 'fill' is already present. Adding another scale for 'fill', which will replace the existing scale.
p1 + p2

saveRDS(SampleB, "/Users/christinacomo/Desktop/Spatial/RDS_files/SampleB_initial.RDS")
#Now subset with  spots 
rawdata_dir <- ('/Users/christinacomo/Desktop/Spatial/Raw Data')

MGE <- read.csv("/Users/christinacomo/Desktop/Spatial/Raw Data/Control2MGE.csv")
LGE <- read.csv("/Users/christinacomo/Desktop/Spatial/Raw Data/Control2LGE.csv")
Midline <- read.csv("/Users/christinacomo/Desktop/Spatial/Raw Data/Control2Midline.csv")
Dorsal_Cortex <- read.csv("/Users/christinacomo/Desktop/Spatial/Raw Data/Control2DorsalCortex.csv")
Ventral_Cortex <- read.csv("/Users/christinacomo/Desktop/Spatial/Raw Data/Control2VentralCortex.csv")
# rename columns in cortex and meninges dataframes for merging
names(MGE) <- c("barcodes", "region")
names(LGE) <- c("barcodes", "region")
names(Midline) <- c("barcodes", "region")
names(Dorsal_Cortex) <- c("barcodes", "region")
names(Ventral_Cortex) <- c("barcodes", "region")
# merge cortex and meninges dataframes together
regions_of_interest <- rbind(MGE, LGE, Midline, Dorsal_Cortex, Ventral_Cortex) 
# grab the spot barcodes to use for subsetting
spots.use <- regions_of_interest$barcodes
regions_of_interest <- regions_of_interest %>% column_to_rownames(var = "barcodes")
# check dimensions of regions_of_interest and make sure it is the sum of cc_cortex and cc_meninges
dim(regions_of_interest)
[1] 174   1
# now, subset the seurat object
SampleB <- subset(SampleB, cells = spots.use)
subset_B <- AddMetaData(SampleB, metadata = regions_of_interest)
p1 <- SpatialDimPlot(subset_B)
p1

SpatialFeaturePlot(subset_B, 
                   features = c("nCount_Spatial", 
                                "nFeature_Spatial", 
                                "percent_mito", 
                                "percent_hb"))

saveRDS(subset_B, "/Users/christinacomo/Desktop/Spatial/RDS_files/SampleB_subsetwithbarcodes.RDS")
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCmVkaXRvcl9vcHRpb25zOiAKICBjaHVua19vdXRwdXRfdHlwZTogaW5saW5lCi0tLQoKLS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCmVkaXRvcl9vcHRpb25zOiAKICBjaHVua19vdXRwdXRfdHlwZTogaW5saW5lCi0tLQpgYGB7cn0KbGlicmFyeShnZ3Bsb3QyKQpsaWJyYXJ5KGdnc2NpKQpsaWJyYXJ5KGhkZjVyKQpsaWJyYXJ5KHBhdGNod29yaykKbGlicmFyeShSQ29sb3JCcmV3ZXIpCmxpYnJhcnkoU2V1cmF0KQpsaWJyYXJ5KHRpZHl2ZXJzZSkKYGBgCgoKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldCh3YXJuaW5nID0gRkFMU0UsIG1lc3NhZ2UgPSBGQUxTRSwgZXJyb3IgPSBGQUxTRSkgCmBgYAoKCmBgYHtyfQpzZXR3ZCgiL1VzZXJzL2NocmlzdGluYWNvbW8vRGVza3RvcC9TcGF0aWFsIikKZ2V0d2QoKQpgYGAKCmBgYHtyfQpkYXRhX2RpciA8LSAnL1VzZXJzL2NocmlzdGluYWNvbW8vRGVza3RvcC9TcGF0aWFsL2RhdGEvQicKbGlzdC5maWxlcyhkYXRhX2RpcikgIyBTaG91bGQgc2hvdyBmaWx0ZXJlZF9mZWF0dXJlX2JjX21hdHJpeC5oNQpgYGAKCgpgYGB7cn0KU2FtcGxlQiA8LSBMb2FkMTBYX1NwYXRpYWwoCiAgZGF0YV9kaXIsCiAgZmlsZW5hbWUgPSAiZmlsdGVyZWRfZmVhdHVyZV9iY19tYXRyaXguaDUiLAogIGFzc2F5ID0gIlNwYXRpYWwiLAogIHNsaWNlID0gInNsaWNlMSIsCiAgZmlsdGVyLm1hdHJpeCA9IFRSVUUsCiAgdG8udXBwZXIgPSBGQUxTRSwKICBpbWFnZSA9IE5VTEwsCikKYGBgCgpgYGB7cn0Kc2FtcGxlIDwtICJjb250cm9sMiIKU2FtcGxlQltbIm9yaWcuaWRlbnQiXV0gPC0gc2FtcGxlClNhbXBsZUIgPC0gU2V0SWRlbnQoU2FtcGxlQiwgdmFsdWUgPSBzb0BtZXRhLmRhdGEkb3JpZy5pZGVudCkKYGBgCgoKYGBge3J9ClNhbXBsZUIgPC0gUGVyY2VudGFnZUZlYXR1cmVTZXQoU2FtcGxlQiwgIl5tdC0iLCBjb2wubmFtZSA9ICJwZXJjZW50X21pdG8iKQpTYW1wbGVCIDwtIFBlcmNlbnRhZ2VGZWF0dXJlU2V0KFNhbXBsZUIsICJeSGIuKi0iLCBjb2wubmFtZSA9ICJwZXJjZW50X2hiIikKYGBgCgpgYGB7ciwgZmlnLmhlaWdodCA9IDMsIGZpZy53aWR0aCA9IDN9ClZsblBsb3QoU2FtcGxlQiwgCiAgICAgICAgZmVhdHVyZXMgPSBjKCJuQ291bnRfU3BhdGlhbCIsIAogICAgICAgICAgICAgICAgICAgICAibkZlYXR1cmVfU3BhdGlhbCIsIAogICAgICAgICAgICAgICAgICAgICAicGVyY2VudF9taXRvIiwgCiAgICAgICAgICAgICAgICAgICAgICJwZXJjZW50X2hiIiksCiAgICAgICAgcHQuc2l6ZSA9IDAuMSwgCiAgICAgICAgbmNvbCA9IDIpICsgTm9MZWdlbmQoKQpgYGAKCmBgYHtyfQpTcGF0aWFsRmVhdHVyZVBsb3QoU2FtcGxlQiwgCiAgICAgICAgICAgICAgICAgICBmZWF0dXJlcyA9IGMoIm5Db3VudF9TcGF0aWFsIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5GZWF0dXJlX1NwYXRpYWwiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGVyY2VudF9taXRvIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBlcmNlbnRfaGIiKSkKYGBgCgpgYGB7cn0KU2FtcGxlQiA8LSBTQ1RyYW5zZm9ybShTYW1wbGVCLCBhc3NheSA9ICJTcGF0aWFsIikKCmBgYAoKYGBge3J9ClNhbXBsZUIgPC0gUnVuUENBKFNhbXBsZUIsIGFzc2F5ID0gIlNDVCIsIHZlcmJvc2UgPSBGQUxTRSkKU2FtcGxlQiA8LSBGaW5kTmVpZ2hib3JzKFNhbXBsZUIsIHJlZHVjdGlvbiA9ICJwY2EiLCBkaW1zID0gMTozMCwgdmVyYm9zZSA9IEZBTFNFKQpTYW1wbGVCIDwtIEZpbmRDbHVzdGVycyhTYW1wbGVCLCB2ZXJib3NlID0gRkFMU0UpClNhbXBsZUIgPC0gUnVuVU1BUChTYW1wbGVCLCByZWR1Y3Rpb24gPSAicGNhIiwgZGltcyA9IDE6MzApCmBgYAoKYGBge3J9CnAxIDwtIERpbVBsb3QoU2FtcGxlQiwgcmVkdWN0aW9uID0gInVtYXAiLCBsYWJlbCA9IFRSVUUpCnAyIDwtIFNwYXRpYWxEaW1QbG90KFNhbXBsZUIsIGxhYmVsID0gVFJVRSwgbGFiZWwuc2l6ZSA9IDMpCnAxICsgcDIKYGBgCgpgYGB7cn0Kc2F2ZVJEUyhTYW1wbGVCLCAiL1VzZXJzL2NocmlzdGluYWNvbW8vRGVza3RvcC9TcGF0aWFsL1JEU19maWxlcy9TYW1wbGVCX2luaXRpYWwuUkRTIikKYGBgCgoKYGBge3J9CiNOb3cgc3Vic2V0IHdpdGggIHNwb3RzIApyYXdkYXRhX2RpciA8LSAoJy9Vc2Vycy9jaHJpc3RpbmFjb21vL0Rlc2t0b3AvU3BhdGlhbC9SYXcgRGF0YScpCgpNR0UgPC0gcmVhZC5jc3YoIi9Vc2Vycy9jaHJpc3RpbmFjb21vL0Rlc2t0b3AvU3BhdGlhbC9SYXcgRGF0YS9Db250cm9sMk1HRS5jc3YiKQpMR0UgPC0gcmVhZC5jc3YoIi9Vc2Vycy9jaHJpc3RpbmFjb21vL0Rlc2t0b3AvU3BhdGlhbC9SYXcgRGF0YS9Db250cm9sMkxHRS5jc3YiKQpNaWRsaW5lIDwtIHJlYWQuY3N2KCIvVXNlcnMvY2hyaXN0aW5hY29tby9EZXNrdG9wL1NwYXRpYWwvUmF3IERhdGEvQ29udHJvbDJNaWRsaW5lLmNzdiIpCkRvcnNhbF9Db3J0ZXggPC0gcmVhZC5jc3YoIi9Vc2Vycy9jaHJpc3RpbmFjb21vL0Rlc2t0b3AvU3BhdGlhbC9SYXcgRGF0YS9Db250cm9sMkRvcnNhbENvcnRleC5jc3YiKQpWZW50cmFsX0NvcnRleCA8LSByZWFkLmNzdigiL1VzZXJzL2NocmlzdGluYWNvbW8vRGVza3RvcC9TcGF0aWFsL1JhdyBEYXRhL0NvbnRyb2wyVmVudHJhbENvcnRleC5jc3YiKQpgYGAKCmBgYHtyfQojIHJlbmFtZSBjb2x1bW5zIGluIGNvcnRleCBhbmQgbWVuaW5nZXMgZGF0YWZyYW1lcyBmb3IgbWVyZ2luZwpuYW1lcyhNR0UpIDwtIGMoImJhcmNvZGVzIiwgInJlZ2lvbiIpCm5hbWVzKExHRSkgPC0gYygiYmFyY29kZXMiLCAicmVnaW9uIikKbmFtZXMoTWlkbGluZSkgPC0gYygiYmFyY29kZXMiLCAicmVnaW9uIikKbmFtZXMoRG9yc2FsX0NvcnRleCkgPC0gYygiYmFyY29kZXMiLCAicmVnaW9uIikKbmFtZXMoVmVudHJhbF9Db3J0ZXgpIDwtIGMoImJhcmNvZGVzIiwgInJlZ2lvbiIpCmBgYAoKYGBge3J9CiMgbWVyZ2UgY29ydGV4IGFuZCBtZW5pbmdlcyBkYXRhZnJhbWVzIHRvZ2V0aGVyCnJlZ2lvbnNfb2ZfaW50ZXJlc3QgPC0gcmJpbmQoTUdFLCBMR0UsIE1pZGxpbmUsIERvcnNhbF9Db3J0ZXgsIFZlbnRyYWxfQ29ydGV4KSAKYGBgCgoKYGBge3J9CiMgZ3JhYiB0aGUgc3BvdCBiYXJjb2RlcyB0byB1c2UgZm9yIHN1YnNldHRpbmcKc3BvdHMudXNlIDwtIHJlZ2lvbnNfb2ZfaW50ZXJlc3QkYmFyY29kZXMKcmVnaW9uc19vZl9pbnRlcmVzdCA8LSByZWdpb25zX29mX2ludGVyZXN0ICU+JSBjb2x1bW5fdG9fcm93bmFtZXModmFyID0gImJhcmNvZGVzIikKYGBgCgpgYGB7cn0KIyBjaGVjayBkaW1lbnNpb25zIG9mIHJlZ2lvbnNfb2ZfaW50ZXJlc3QgYW5kIG1ha2Ugc3VyZSBpdCBpcyB0aGUgc3VtIG9mIGNjX2NvcnRleCBhbmQgY2NfbWVuaW5nZXMKZGltKHJlZ2lvbnNfb2ZfaW50ZXJlc3QpCmBgYAoKYGBge3J9CiMgbm93LCBzdWJzZXQgdGhlIHNldXJhdCBvYmplY3QKU2FtcGxlQiA8LSBzdWJzZXQoU2FtcGxlQiwgY2VsbHMgPSBzcG90cy51c2UpCmBgYAoKYGBge3J9CnN1YnNldF9CIDwtIEFkZE1ldGFEYXRhKFNhbXBsZUIsIG1ldGFkYXRhID0gcmVnaW9uc19vZl9pbnRlcmVzdCkKcDEgPC0gU3BhdGlhbERpbVBsb3Qoc3Vic2V0X0IpCnAxCmBgYAoKCmBgYHtyfQpTcGF0aWFsRmVhdHVyZVBsb3Qoc3Vic2V0X0IsIAogICAgICAgICAgICAgICAgICAgZmVhdHVyZXMgPSBjKCJuQ291bnRfU3BhdGlhbCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuRmVhdHVyZV9TcGF0aWFsIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBlcmNlbnRfbWl0byIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwZXJjZW50X2hiIikpCmBgYAoKYGBge3J9CnNhdmVSRFMoc3Vic2V0X0IsICIvVXNlcnMvY2hyaXN0aW5hY29tby9EZXNrdG9wL1NwYXRpYWwvUkRTX2ZpbGVzL1NhbXBsZUJfc3Vic2V0d2l0aGJhcmNvZGVzLlJEUyIpCmBgYAoKCg==